home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / assembler / progasm1.lha / SORGENTI / LEZIONE2g.S < prev    next >
Text File  |  1995-04-19  |  1KB  |  33 lines

  1.  
  2. ; Lezione2G.s
  3.  
  4. Inizio:
  5.     lea    THEEND,a0    ; metti in a0 l'indirizzo da dove iniziare
  6.     lea    START,a1    ; metti in a1 l'indirizzo dove finire
  7. CLELOOP:
  8.     clr.l    -(a0)    ;aggiungi 4 ad a0 (long!), poi azzera la long
  9.     cmp.l    a0,a1    ; a0 e' uguale ad a1? Cioe' siamo all'indirizzo START?
  10.     bne.s    CLELOOP    ; se no, torna ad eseguire CLELOOP...
  11.     rts        ; ESCI dal prog e torna ad ASMONE
  12.  
  13. START:
  14.     dcb.b    40,$fe    ; METTI QUA IN MEMORIA 40 bytes $fe.
  15. THEEND:            ; questa label segna la fine dei 40 bytes...
  16.  
  17.     dcb.b    10,0    ; mettiamo 10 bytes azzerati qua tanto per sfizio
  18.  
  19.     end
  20.  
  21. questo programmino fa una pulizia a partire dall'indirizzo messo in a0, fino
  22. all'indirizzo che mettiamo in a1: la diversita' con LEZIONE2f.s in cui e'
  23. usato un CLR.L (a0)+ e' che qua si parte dalla fine dei bytes da pulire e
  24. si arriva "indietreggiando" fino all'inizio.
  25. per verificare cio', fate un AD e noterete che ogni volta che viene eseguito
  26. il CLR.L -(a0) il registro a0 decrementa fino a raggiungere a1, cioe' START.
  27. verificate pure con M START che dopo l'esecuzione la pulizia e' avvenuta,
  28. e se vi aggrada modificate pure il CLR.L -(a0) con CLR.W -(a0) e noterete
  29. che sono necessari 20 passaggi (infatti 20*2=40) e che ogni volta a0 e'
  30. diminuito di 2, mentre sostituendolo con CLR.B -(a0) serviranno 40 passaggi
  31. e il registro a0 sara' decrementato di 1 ogni volta.
  32.  
  33.